home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 4 / United Public Domain Gold 4.iso / fredfish / ff.0570.dms / ff.0570.adf / View / ascii.h < prev    next >
C/C++ Source or Header  |  1991-11-21  |  4KB  |  133 lines

  1. #ifndef LIBRARIES_ASCII_H
  2. #define LIBRARIES_ASCII_H 1
  3.  
  4. /*-- AutoRev header do NOT edit!
  5. *
  6. *   Program         :   ascii.h
  7. *   Copyright       :   © 1991 Jaba Development
  8. *   Author          :   Jan van den Baard
  9. *   Creation Date   :   12-Aug-91
  10. *   Current version :   1.2
  11. *   Translator      :   Several.
  12. *
  13. *   REVISION HISTORY
  14. *
  15. *   Date          Version         Comment
  16. *   ---------     -------         ------------------------------------------
  17. *   12-Aug-91     1.2             Added "FindFrom" proto.
  18. *   23-Apr-91     1.1             Removed some useless data in structures.
  19. *   16-Apr-91     1.0             Initial version!
  20. *
  21. *-- REV_END --*/
  22.  
  23. #ifndef EXEC_TYPES_H
  24. #include <exec/types.h>
  25. #endif
  26.  
  27. #ifndef EXEC_LISTS_H
  28. #include <exec/lists.h>
  29. #endif
  30.  
  31. #ifndef LIBRARIES_DOS_H
  32. #include <libraries/dos.h>
  33. #endif
  34.  
  35. #ifndef LIBRARIES_NOFRAG_H
  36. #include <libraries/nofrag.h>
  37. #endif
  38.  
  39. /*
  40.  * Line bit/flags definitions.
  41.  */
  42. #define LNB_Split       0
  43. #define LNF_Split       1<<LNB_Split
  44.  
  45. /*
  46.  * AsciiText bit/flags definitions.
  47.  */
  48. #define ATB_SkipEsc     0
  49. #define ATF_SkipEsc     1<<ATB_SkipEsc
  50. #define ATB_TabConvert  1
  51. #define ATF_TabConvert  1<<ATB_TabConvert
  52.  
  53. /*
  54.  * Some miscellanious definitions.
  55.  */
  56. #define MAXLINE         256
  57. #define ANSITAB         8
  58. #define MINTAB          2
  59. #define MAXTAB          16
  60.  
  61. /*
  62.  * Possible errors.
  63.  */
  64. #define ASE_OK           0
  65. #define ASE_EOF         -1
  66. #define ASE_NOMEM       -2
  67. #define ASE_READ        -3
  68. #define ASE_WRITE       -4
  69. #define ASE_NOFILE      -5
  70. #define ASE_FILETYPE    -6
  71.  
  72. struct Line {
  73.     struct Line         *Next;
  74.     struct Line         *Prev;
  75.     UBYTE               *Text;
  76.     UWORD                Size;
  77.     UWORD                Flags;
  78. };
  79.  
  80. struct AsciiText {
  81.     struct Line         *First;
  82.     struct Line         *End;
  83.     struct Line         *Last;
  84.     UWORD                NumLines;
  85.     UWORD                NumSplit;
  86.     ULONG                NumBytes;
  87.     UWORD                TabJump;
  88.     UWORD                MaxChars;
  89.     UWORD                Flags;
  90.     struct MemoryChain  *MemoryUsed;
  91. };
  92.  
  93. struct StringScan {
  94.     struct AsciiText    *Text;
  95.     struct Line         *Line;
  96.     UBYTE               *String;
  97.     UWORD                StringSize;
  98.     UWORD                TextOffset;
  99.     UBYTE               *Address;
  100. };
  101.  
  102. struct BuffIO {
  103.     BPTR                 Handle;
  104.     ULONG                FileMode;
  105.     UBYTE                Buffer[1024];
  106.     UBYTE                Line[MAXLINE];
  107.     UBYTE               *Pointer;
  108.     UWORD                BytesLeft;
  109.     ULONG                BytesDone;
  110.     WORD                 Error;
  111. };
  112.  
  113. #ifndef __STKARGS__ /* #define this if used with DICE it's "__regargs" */
  114. #define __STARG
  115. #else
  116. #define __STARG     __stkargs
  117. #endif
  118.  
  119. __STARG struct BuffIO   *BOpen( char *, long );
  120. __STARG long BClose( struct BuffIO * );
  121. __STARG long BGetC( struct BuffIO * );
  122. __STARG long BPutC( struct BuffIO *, long );
  123. __STARG long BIoErr( struct BuffIO * );
  124. __STARG struct Line *BGetS( struct BuffIO *, struct AsciiText * );
  125. __STARG long BPutS( struct BuffIO *, struct Line * );
  126. __STARG struct AsciiText *AllocAscii( long, long, long );
  127. __STARG void FreeAscii( struct AsciiText * );
  128. __STARG long FirstOccurrence( struct AsciiText *, UBYTE *, struct StringScan *, long );
  129. __STARG long NextOccurrence( struct StringScan *, long );
  130. __STARG long PreviousOccurrence( struct StringScan *, long );
  131. __STARG long FindFrom( struct AsciiText *, UBYTE *, struct StringScan *, struct Line *, long );
  132. #endif    /* LIBRARIES_ASCII_I */
  133.